package com.doitedu.day02.mp

/**
 * @Date 22.6.20
 * @Created by HANGGE
 * @Description
 */
object _03Map集合遍历 {
  def main(args: Array[String]): Unit = {
    val mp = Map[String, Int]("lilei" -> 99, ("bobo", 100), ("xiaoming", 60))
    // 方式1   增强for
    for (elem <- mp) { //elem 对偶元组
      println(elem._1)
      println(elem._2)
    }
    println("--------------------")
    for ((k, v) <- mp) {
      println(k)
      println(v)
    }

    println("------------只获取key--------")
    for ((k, _) <- mp) {
      println(k)
    }

    println("------------只获取value--------")
    for ((_, v) <- mp) {
      println(v)
    }
    println("------------方式2-------")
    //方式2   遍历keys  根据key获取value
    val keys = mp.keys
    for (key <- keys) {
      println(key)
      // 获取value   在Java中根据key获取value的值 (一定可以获取到数据)  getOrDefault("" , 默认值)
      val maybeInt: Option[Int] = mp.get(key)
      if (maybeInt.isDefined){  // 根据key获取到了值
        val value = maybeInt.get
        println(value)
      }else{
        println("没有根据key获取到值")
      }
    }
    println("------------方式2-------")
    for (key <- keys) {
      println(key)
      // 获取value   在Java中根据key获取value的值 (一定可以获取到数据)  getOrDefault("" , 默认值)
      val v = mp.getOrElse(key, -1)
      println(v)
    }
    println("------------方式3-------")
    // 处理Map集合中的每个元素   e 就是对偶元组
    mp.map(tp=>println(tp._1+"--"+tp._2))
    println("------------方式4-------")
    mp.foreach(tp=>println(tp._1+"=="+tp._2))


  }

}
